
<!-- saved from url=(0058)http://www.google.com/notebook/html?nbid=BDQVhDAoQ0MCQxbQl -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link type="text/css" rel="stylesheet" href="./地址验证_files/1553808490-public_css.css">
<title>地址验证</title></head>
<body bgcolor="#FFFFFF" onload=""><link type="text/css" rel="stylesheet" href="./地址验证_files/3158938506-staticpages_css.css">
<table align="center" border="0" cellpadding="5" cellspacing="0" width="100%"><tbody><tr valign="middle"><td width="1%"><a href="http://www.google.com/notebook/"><img src="./地址验证_files/en_notebook_150x55.png" align="left" border="0" height="55" width="150" alt="Google Notebook"></a></td>
<td><table style="margin-bottom: 5px;" align="center" bgcolor="#c3d9ff" border="0" cellpadding="0" cellspacing="0" width="100%" dir="ltr"><tbody><tr><td class="bubble tl" align="left" valign="top"><img src="./地址验证_files/corner_tl.gif" class="c" alt=""></td>
<td class="bubble1" rowspan="2" style="padding: 3px 0pt; font-family: arial; text-align: left; font-weight: bold; font-size: 100%;">地址验证</td>
<td class="bubble tr" align="right" valign="top"><img src="./地址验证_files/corner_tr.gif" class="c" alt=""></td></tr>
<tr><td class="bubble bl" align="left" valign="bottom"><img src="./地址验证_files/corner_bl.gif" class="c" alt=""></td>
<td class="bubble br" align="right" valign="bottom"><img src="./地址验证_files/corner_br.gif" class="c" alt=""></td></tr></tbody></table></td></tr></tbody></table>
<br>
<div id="pubContent"><div id="pubHeader"><div id="pubHeaderSub">Last edited  September 25, 2010 
<br></div></div>

<a name="NDRJ1DQoQstToj7Ul"></a>
<div class="PubNote">
<div class="PubNoteContentArea"><span style="line-height:23px">&nbsp;&nbsp; &nbsp;地址重复检测（DAD: Duplicate Address Detection）背景要求:<br>&nbsp;&nbsp;&nbsp; . 节点在发送路由器公告（RA）之前要获得唯一的本地链路地址。<br>&nbsp;&nbsp;&nbsp; . IPv6自动配置要求在使用地址之前进行地址重复检测（DAD）。<br>&nbsp;&nbsp;&nbsp; . 标准DAD花费较长时间才能完成，因而引入了“乐观的DAD”（RFC 4429）。</span>&nbsp;<div><span style="line-height:23px">2. 标准DAD过程<br>&nbsp;&nbsp;&nbsp; (1) 在发送邻居请求（NS）前，接口必须加入全节点组播地址(FF02::1)和生成IPv6地址的请求节点组播地址（solicited-node multicast address），即接收目的地址为这些IPv6地址的分组。<br><br>&nbsp;&nbsp;&nbsp; (2)生成IPv6地址后随机延时一段时间后开始发送用于DAD的邻居请求（NS）消息。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 邻居请求（NS）消息的源地址为::，目的地址为临时单播地址的请求节点组播地址<br><br>&nbsp;&nbsp;&nbsp; (3) 在DAD过程中地址处于Tentative状态（“暂时的”）（IFA_F_TENTATIVE)。在完成DAD过程后，tenativeAddr将会被作为“首选的”地址（PreferedAddr）。若发现了重复地址，则该地址变为"废弃的"地址（deprecatedAddr）。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 背后原理：未确定唯一性的地址不能使用<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 即不能接收目的地址或者发送源地址为此地址的分组，但是与DAD相关的邻居公告（NA）消息除外。</span><br></div></div>
</div> <a name="NDSaaDAoQhMezhrUl"></a>
<div class="PubNote">
<div class="PubNoteContentArea">清华大学于2009年4月提出SAVI源址合法性检验 rfc草案，该草案主要讲述了ipv4/ipv6的CPS（Control Packet Snooping）原理，根据CPS原理在接入设备(交换机、AP)上建立基于源地址的绑定关系，从而可以判断从接入设备的指定端口接收到的报文的源地址的有效性。&nbsp;<br><br>　　CPS对于客户端是透明的，在客户端没有任何变化，也没有新增任何协议，所涉及的内容都是根据已有的协议操作流程，在接入设备上建立绑定关系，这种绑定关系一般都是临时的，有生存期，也有一些事件可以触发接入设备解除具体的绑定关系。<br><br>　　CPS绑定关系的建立是以<b>重复地址检测</b>（DAD: Duplicate Address Detection）为基础的( ipv4的gratuitous ARP报文，ipv6的DAD NS报文)，如果主机使用<b>没有进行重复检测的地址</b>作为源地址来发送报文，则接入设备应将该报文作为欺骗报文来处理。接入设备根据 <b>客户端发出重复地址检测报文后在一定时间内没有收到应答报文</b> 而在接入端建立基于源地址的绑定关系，绑定关系建立后，从相应的端口收到的数据报文，根据其源地址是否在端口绑定关系表中有匹配来确定报文是否合法，从而对合法报文正常转发，非法报文则丢弃。<div><br></div>　　SAVI草案中关于IPv4的主机合法接入主要包括了ARP snooping与DHCP snooping两部分的内容，这部分内容请参考《高校校园网ARP攻击防御解决方案》；关于IPv6的主机合法接入主要包括了NDP snooping与DHCPv6 snooping两部分的内容。</div>
</div> <a name="NDRNLDQoQs8athrUl"></a>
<div class="PubNote">
<div class="PubNoteContentArea"><span style="font-family:Simsun;font-size:small;color:rgb(86, 86, 86);line-height:22px">通常说IPv6比IPv4更安全，这种观点来源于IPv6最初的定义(RFC2401)对IPSec的强制使用，由于这种观点的存在促进了IPv6得到应用。虽然这种强制IPSec的特征阻挡了一些攻击的入侵之机，但是IPv6并不是万能的，各种攻击漏洞也必定存在，特别是IPv6在许多特性上与IPv4存在共同之处，许多在IPv4上存在的攻击特性像ARP攻击在IPv6中也会存在类似的攻击。</span>&nbsp;</div>
</div> <a name="NDQEnDAoQ8NeRxbQl"></a>
<div class="PubNote">
<div class="PubNoteContentArea">域内/自治域<br>状态机<br>非SAVI主机假冒SAVI主机地址（Source Address Validation Improvement SAVI）&nbsp;<br>SAVI路由器<br>出口视图树<br><br>汇集树（Sink Tree）&nbsp;<br>从所有的源结点到一个给定的目的结点的最优路由的集合形成了一个以目的结点为根的树，称为汇集树；<br><br>最大SAVI子树<br><br>IPv4/IPV6的CPS（Control Packet Snooping）原理<br>DrDos攻击(分布式反射拒绝服务攻击)，非法源地址欺骗，假冒源地址，DDoS攻击(布式拒绝服务攻击)，反射式拒绝服务攻击，SYN Flood，TCP劫持(MITM，Blind)等<br>位置标识符Locator</div>
</div> <a name="NDQIQDAoQn6KP8LQl"></a>
<div class="PubNote">
<div class="PubNoteContentArea"><span style="font-size:17px;line-height:30px">由于本地域名服务器（专业上称为“<a title="递归服务器" href="" style="color:rgb(255, 0, 0);text-decoration:none">递归服务器</a>”）</span><br></div>
</div> <a name="NDQN8DAoQ3tDyybQl"></a>
<div class="PubNote">
<div class="PubNoteContentArea">如何检测并阻止非SAVI用户假冒SAVI用户地址<br><br><font color="#FF0000">为什么非SAVI主机要假冒SAVI主机IP地址？</font><div>答：非SAVI主机可以假冒所有它想假冒的主机<br></div><div><font color="#FF0000">为什么不检测非SAVI主机假冒非SAVI主机IP地址的情形？</font><br>只有非SAVI主机假冒了SAVI主机IP地址的情形可以检测出来</div><div><br>SAVI主机：接入在SAVI交换机下的主机<br>非SAVI主机：接入在非<font face="宋体, SimSun">SAVI</font>交换机下的主机</div></div>
</div> <a name="NDR2oDAoQ5dXh6bQl"></a>
<div class="PubNote">
<div class="PubNoteContentArea"><span style="font-family:Simsun;font-size:24px;line-height:33px">所谓基于真实IPv6地址寻址技术，是指互联网上传输的IPv6分组的源地址是真实的，即来自于该地址授权的使用方，假冒源地址的IPv6分组不能在互联网上传输。</span><br><div><span style="font-family:Simsun;font-size:24px;line-height:33px">设计并实现了一种包括接入、域内、域间三个层次的真实IPv6源地址网络寻址的解决方案<br></span></div></div>
</div> <a name="NDRXUDAoQhuPv6bQl"></a>
<div class="PubNote">
<div class="PubNoteContentArea"><span style="font-family:Simsun;font-size:24px;line-height:33px">互联网由很多自治系统（AS）组成，它们自己决定自己的路由策略和管理机制，每个AS都有自己的地址前缀范围，负责管理该地址前缀范围的管理和使用。真实IP地址访问的问题实际上是地址的从属关系问题，也就是实体发出的报文应该只携带它拥有的地址，报文只应该被拥有其源地址的实体发出。</span><br></div>
</div> <a name="NDQN8DAoQsb3R7rQl"></a>
<div class="PubNote">
<div class="PubNoteContentArea"><span style="font-size:14px;line-height:23px">在2000年yahoo等知名网站被攻击后，美国的<a href="http://www.qqread.com/tag/1962/index.html" style="font-size:14px;color:rgb(0, 0, 0);text-decoration:none">网络安全</a>研究机构提出了骨干运营商联手来解决DDoS攻击的方案。其实方法很简单，就是每家运营商在自己的出口路由器上进行源IP地址的验证，如果在自己的路由表中没有到这个数据包源IP的路由，就丢掉这个包。这种方法可以阻止黑客利用伪造的源IP来进行DDoS攻击。不过同样，这样做会降低路由器的效率，这也是骨干运营商非常关注的问题，所以这种做法真正采用起来还很困难。</span><br></div>
</div> <a name="NDQ5XDQoQmeLB8LQl"></a>
<div class="PubNote">
<div class="PubNoteContentArea"><span style="font-size:20px;line-height:33px"><div><span style="font-size:20px;line-height:33px"><span style="line-height:normal;font-size:17px"><h1 style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:17px;margin-right:0px;margin-bottom:2px;margin-left:0px;font-size:24px;font-weight:bold;line-height:28px;clear:both">断网祸起暴风影音</h1></span></span></div>此次事故的罪魁祸首是同样在使用DNSPod服务的一个私人服务器网站。这个网站的“同行”在对其web服务器攻击不成的情况下动用大量“肉鸡”对其服务商DNSPod进行了大规模的攻击。</span>&nbsp;</div>
</div> <a name="NDRJ1DQoQ7P6Q77Ql"></a>
<div class="PubNote">
<div class="PubNoteContentArea"><span style="font-family:song, Verdana;font-size:12px;border-collapse:collapse">&gt;&gt;&gt;&gt;&gt;概念:D.R.D.O.S是Distributed Reflection Denial of Service Attack的缩写,直译为分布式（Distributed）反射（Reflection）拒绝服务<br>（Denial of Service）攻击，2002年1月11日凌晨两点，<a href="http://grc.com/">grc.com</a>遭到攻击，大量的ack应答淹没了可怜的<a href="http://grc.com/">grc.com</a>，所幸当时<a href="http://grc.com/">grc.com</a>的网络管理员正好在服务器上，他截取了一小部分攻击数据包，令人吃惊的是，所有攻击他的数据竟然来自于200 多个网络核心基础设施路由器，而这些路由器不可能全部存在安全漏洞。经过这件事，D.R.D.O.S开始被人们所了解，下面，我就来介绍一下D.R.D.O.S的攻击原理和编程实现。<br>在D.R.D.O.S的名称里有Reflection这个单词，而这，就是这个攻击方式的核心原理所在，从“反射”的字面意思来想一想,<a href="http://grc.com/">grc.com</a>所受到的攻击来自于那么多并未被黑客入侵的核心路由器这种奇怪的现象也就不难解释了，<a href="http://grc.com/">grc.com</a>遭到了“反射”。好比SystEm32小孩躲在Sheepxxy后面拿<br>鸡蛋丢Jambray，J以为是Sheepxxy丢的，所以拿了一块石头（汗...）砸Sheepxxy（倒霉的Sheepxxy,残念...），发动<a href="http://d.r.d.o.xn--sgrc-5n8f0pvxv80j3r6ah4t.com/">D.R.D.O.S的攻击者冒充grc.com</a>的IP地址向路由器们发送syn request，也就是TCP三次握手的第一步，路由器们以为<a href="http://grc.com/">grc.com</a>要和自己建立tcp连接，所以返回ack应答，由于源ip的伪造，所有的ack应答全部都涌向了<a href="http://grc.com/">grc.com</a>，可怜的<a href="http://grc.com/">grc.com</a>就这样被踢下了互联网.一次成功的D.R.D.O.S就产生了。</span><br><div><span style="font-family:song, Verdana;font-size:12px;border-collapse:collapse">&gt;&gt;&gt;&gt;&gt;效果:在查关于D.R.D.O.S的资料时，我注意到大部分的资料都提到了分布式反射拒绝服务攻击的一个显著优点:“不需要傀儡机”，也就是不要很多肉鸡便可产生惊人的破坏。但是对于这一点，我只能非常遗憾的说:这是错的，D.R.D.O.S与传统的D.D.O.S（分布式拒绝服务攻击）相比，并没有什么实质的不同，他并不能像有些人说的那样放大攻击，也同样需要很多肉鸡才能实现，攻击的效果也和普通的syn flood（DDOS方式）差不多，并不存在效果的优越性。D.R.D.O.S发送一个syn请求给服务器，服务器便反射一个ack应答给受害者，D.R.D.O.S要想同时有1000个ack应答涌向受害者，它本身就得发送1000个syn请求给1000个服务器，从效果上来说，这和直接发送1000个syn给受害者并无不同。<br><br>&gt;&gt;&gt;&gt;&gt;&gt;小结:D.R.D.O.S一向被传得很神奇，因为它"能放大攻击力度"，“不需要傀儡机”，但是，事实上D.R.D.O.S不能放大攻击，并且同样要很多肉鸡，那么，D.R.D.O.S有什么优点吗？答案是肯定的，它的优点在于一些对攻击的特征检测和防御将会失效，比如对是否无效ip的判断，是否有固定的TTL值等...还有在路由器上过滤报文也很难,因为攻击你的都是正常的主机.<br></span></div></div>
</div> <a name="NDQcZDAoQgdDs67Ql"></a>
<div class="PubNote">
<div class="PubNoteContentArea"><span style="font-family:arial;font-size:14px;line-height:24px">　　一般的访问控制主要在防火墙中进行设置，制定一些安全策略：如内部局域网的资源不允许外部网上的用户使用；不设防区(又称非军事区)可以为内部或外部局域网，其中的资源允许外部网的用户有限度地使用；可以使外部用户访问非军事区（DMZ区）的WEB服务器等等。&nbsp;<br><br>　　深入分析研究防火墙技术，利用防火墙配置和实现的漏洞，可以对它实施攻击。通常情况下，有效的攻击都是从相关的子网进行的，因为这些网址得到了防火墙的信赖，虽说成功与否尚取决于机遇等其他因素，但对攻击者而言很值得一试。&nbsp;<br><br>　　突破防火墙系统最常用的方法是IP地址欺骗，它同时也是其他一系列攻击方法的基础。之所以使用这个方法，是因为IP自身的缺点。IP协议依据IP头中的目的地址项来发送IP数据包。如果目的地址是本地网络内的地址，该IP包就被直接发送到目的地。如果目的地址不在本地网络内，该IP包就会被发送到网关，再由网关决定将其发送到何处。这是IP路由IP包的方法。&nbsp;<br><br>　　IP路由IP包时对IP头中提供的IP源地址不做任何检查，并且认为IP头中的IP源地址即为发送该包的机器的IP地址。当接收到该包的目的主机要与源主机进行通讯时，它以接收到的IP包的IP头中IP源地址作为其发送的IP包的目的地址，来与源主机进行数据通讯。IP的这种数据通讯方式虽然非常简单和高效，但它同时也是IP的一个安全隐患，很多网络安全事故都是因为IP这个的缺点而引发的。&nbsp;<br><br>　　黑客或入侵者利用伪造的IP发送地址产生虚假的数据分组，乔装成来自内部站的分组过滤器，这种类型的攻击是非常危险的。关于涉及到的分组真正是内部的还是外部的分组被包装得看起来象内部的种种迹象都已丧失殆尽。只要系统发现发送地址在其自己的范围之内，则它就把该分组按内部通信对待并让其通过。&nbsp;<br><br>　　通常主机A与主机B的TCP连接(中间有或无防火墙)是通过主机A向主机B提出请求建立起来的，而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初始序列号ISN。具体分三个步骤：&nbsp;<br><br>　　主机A产生它的ISN，传送给主机B，请求建立连接；B接收到来自A的带有SYN标志的ISN后，将自己本身的ISN连同应答信息ACK一同返回给A；A再将B传送来ISN及应答信息ACK返回给B。至此，正常情况，主机A与B的TCP连接就建立起来了。&nbsp;<br><br>　　B ---- SYN ----&gt; A&nbsp;<br><br>　　B &lt;---- SYN+ACK ---- A&nbsp;<br><br>　　B ---- ACK ----&gt; A&nbsp;<br><br>　　假设C企图攻击A，因为A和B是相互信任的，如果C已经知道了被A信任的B，那么就要相办法使得B的网络功能瘫痪，防止别的东西干扰自己的攻击。在这里普遍使用的是SYN flood。攻击者向被攻击主机发送许多TCP- SYN包。这些TCP-SYN包的源地址并不是攻击者所在主机的IP地址，而是攻击者自己填入的IP地址。当被攻击主机接收到攻击者发送来的TCP-SYN包后，会为一个TCP连接分配一定的资源，并且会以接收到的数据包中的源地址（即攻击者自己伪造的IP地址）为目的地址向目的主机发送TCP-（SYN+ACK）应答包。&nbsp;<br><br>　　由于攻击者自己伪造的IP地址一定是精心选择的不存在的地址，所以被攻击主机永远也不可能收到它发送出去的TCP-（SYN+ACK）包的应答包，因而被攻击主机的TCP状态机会处于等待状态。如果被攻击主机的TCP状态机有超时控制的话，直到超时，为该连接分配的资源才会被回收。因此如果攻击者向被攻击主机发送足够多的TCP-SYN包，并且足够快，被攻击主机的TCP模块肯定会因为无法为新的TCP连接分配到系统资源而处于服务拒绝状态。并且即使被攻击主机所在网络的管理员监听到了攻击者的数据包也无法依据IP头的源地址信息判定攻击者是谁。</span>&nbsp;</div>
</div> <a name="NDR2oDAoQ973r67Ql"></a>
<div class="PubNote">
<div class="PubNoteContentArea"><span style="font-family:arial;font-size:14px;line-height:24px">　　当B的网络功能暂时瘫痪，现在C必须想方设法确定A当前的ISN。首先连向25端口，因为SMTP是没有安全校验机制的，与前面类似，不过这次需要记录A的ISN，以及C到A的大致的RTT(round trip time)。这个步骤要重复多次以便求出RTT的平均值。一旦C知道了A的ISN基值和增加规律，就可以计算出从C到A需要RTT/2 的时间。然后立即进入攻击，否则在这之间有其他主机与A连接，ISN将比预料的多。&nbsp;<br><br>　　C向A发送带有SYN标志的数据段请求连接，只是信源IP改成了B。A向B回送SYN+ACK数据段，B已经无法响应，B的TCP层只是简单地丢弃A的回送数据段。这个时候C需要暂停一小会儿，让A有足够时间发送SYN+ACK，因为C看不到这个包。然后C再次伪装成B向A发送ACK，此时发送的数据段带有Z预测的A的ISN+1。如果预测准确，连接建立，数据传送开始。&nbsp;<br><br>　　问题在于即使连接建立，A仍然会向B发送数据，而不是C，C仍然无法看到A发往B的数据段，C必须蒙着头按照协议标准假冒B向A发送命令，于是攻击完成。如果预测不准确，A将发送一个带有RST标志的数据段异常终止连接，C只有从头再来。随着不断地纠正预测的ISN，攻击者最终会与目标主机建立一个会晤。通过这种方式，攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果反复试验使得目标主机能够接收对网络的ROOT登录，那么就可以完全控制整个网络。&nbsp;<br><br>　　C(B) ---- SYN ----&gt; A&nbsp;<br><br>　　B &lt;---- SYN+ACK ---- A&nbsp;<br><br>　　C(B) ---- ACK ----&gt; A&nbsp;<br><br>　　C(B) ---- PSH ----&gt; A&nbsp;<br><br>　　IP欺骗攻击利用了RPC服务器仅仅依赖于信源IP地址进行安全校验的特性，攻击最困难的地方在于预测A的ISN。攻击难度比较大，但成功的可能性也很大。C必须精确地预见可能从A发往B的信息，以及A期待来自B的什么应答信息，这要求攻击者对协议本身相当熟悉。同时需要明白，这种攻击根本不可能在交互状态下完成，必须写程序完成。当然在准备阶段可以用netxray之类的工具进行协议分析。&nbsp;<br><br>　　虽然IP欺骗攻击有着相当难度，但我们应该清醒地意识到，这种攻击非常广泛，入侵往往由这里开始。预防这种攻击还是比较容易的。IP本身的缺陷造成的安全隐患目前是无法从根本上消除的。我们只能采取一些弥补措施来使其造成的危害减少到最小的程度。防御这种攻击的最理想的方法是：每一个连接局域网的网关或路由器在决定是否允许外部的IP数据包进入局域网之前，先对来自外部的IP数据包进行检验。如果该IP包的IP源地址是其要进入的局域网内的IP地址，该IP包就被网关或路由器拒绝，不允许进入该局域网。&nbsp;<br><br>　　这种方法虽然能够很好的解决问题，但是考虑到一些以太网卡接收它们自己发出的数据包，并且在实际应用中局域网与局域网之间也常常需要有相互的信任关系以共享资源，这种方案不具备较好的实际价值。另外一种防御这种攻击的较为理想的方法是当IP数据包出局域网时检验其IP源地址。即每一个连接局域网的网关或路由器在决定是否允许本局域网内部的IP数据包发出局域网之前，先对来自该IP数据包的IP源地址进行检验。&nbsp;<br><br>　　如果该IP包的IP源地址不是其所在局域网内部的IP地址，该IP包就被网关或路由器拒绝，不允许该包离开局域网。这样一来，攻击者至少需要使用其所在局域网内的IP地址才能通过连接该局域网的网关或路由器。如果攻击者要进行攻击，根据其发出的IP数据包的IP源地址就会很容易找到谁实施了攻击。因此建议每一个ISP或局域网的网关路由器都对出去的IP数据包进行IP源地址的检验和过滤。如果每一个网关路由器都做到了这一点，IP源地址欺骗将基本上无法奏效。在当前并不是每一网关及路由器都能做到这一点的情况下，网络系统员只能将自己管理的网络至于尽可能严密的监视之下，以防备可能到来的攻击。</span>&nbsp;</div>
</div></div></body></html>